-- 账号功能管理系统数据库初始化脚本
-- 创建数据库
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'AccountFeatureDB')
BEGIN
    CREATE DATABASE AccountFeatureDB;
END
GO

USE AccountFeatureDB;
GO

-- 创建账号表
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Accounts' AND xtype='U')
BEGIN
    CREATE TABLE Accounts (
        Id int IDENTITY(1,1) PRIMARY KEY,
        AccountName nvarchar(50) NOT NULL UNIQUE,
        FeatureString nvarchar(20) NOT NULL DEFAULT '00000000000000000000',
        CreateTime datetime NOT NULL DEFAULT GETDATE(),
        UpdateTime datetime NOT NULL DEFAULT GETDATE(),
        Remark nvarchar(200)
    );
END
GO

-- 创建功能配置表
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='FeatureConfigs' AND xtype='U')
BEGIN
    CREATE TABLE FeatureConfigs (
        FeatureId int PRIMARY KEY,
        FeatureName nvarchar(50) NOT NULL,
        Description nvarchar(200),
        IsEnabled bit NOT NULL DEFAULT 1,
        SortOrder int NOT NULL
    );
END
GO

-- 插入默认功能配置数据
IF NOT EXISTS (SELECT * FROM FeatureConfigs)
BEGIN
    INSERT INTO FeatureConfigs (FeatureId, FeatureName, Description, IsEnabled, SortOrder)
    VALUES 
        (1, '功能1', '按钮1是否可用', 1, 1),
        (2, '功能2', '按钮2是否可用', 1, 2),
        (3, '功能3', '按钮3是否可用', 1, 3),
        (4, '功能4', '按钮4是否可用', 1, 4),
        (5, '功能5', '按钮5是否可用', 1, 5),
        (6, '功能6', '按钮6是否可用', 1, 6),
        (7, '功能7', '按钮7是否可用', 1, 7),
        (8, '功能8', '按钮8是否可用', 1, 8),
        (9, '功能9', '按钮9是否可用', 1, 9),
        (10, '功能10', '按钮10是否可用', 1, 10),
        (11, '功能11', '按钮11是否可用', 1, 11),
        (12, '功能12', '按钮12是否可用', 1, 12),
        (13, '功能13', '按钮13是否可用', 1, 13),
        (14, '功能14', '按钮14是否可用', 1, 14),
        (15, '功能15', '按钮15是否可用', 1, 15),
        (16, '功能16', '按钮16是否可用', 1, 16),
        (17, '功能17', '按钮17是否可用', 1, 17),
        (18, '功能18', '按钮18是否可用', 1, 18),
        (19, '功能19', '按钮19是否可用', 1, 19),
        (20, '功能20', '按钮20是否可用', 1, 20);
END
GO

-- 插入示例账号数据
IF NOT EXISTS (SELECT * FROM Accounts)
BEGIN
    INSERT INTO Accounts (AccountName, FeatureString, Remark)
    VALUES 
        ('admin', '11111111111111111111', '管理员账号，拥有所有功能'),
        ('user1', '10000000000000000000', '普通用户1，只有功能1'),
        ('user2', '11000000000000000000', '普通用户2，有功能1和功能2'),
        ('test', '10101010101010101010', '测试账号，拥有奇数功能');
END
GO

PRINT '数据库初始化完成！';
PRINT '数据库名称: AccountFeatureDB';
PRINT '已创建表: Accounts, FeatureConfigs';
PRINT '已插入默认功能配置数据（20个功能）';
PRINT '已插入示例账号数据';
